# 导入copy模块
import copy
# TODO 浅拷贝
# 只拷贝最外层对象
# list 可变数据类型
list1 = [1, 2, 3, ['aa', 'bb', 'cc']]
list2 = copy.copy(list1)
print(f'list1:{id(list1)}')
print(f'list2:{id(list2)}')
print(f'list1[3]:{id(list1[3])}')
print(f'list2[3]:{id(list2[3])}')

# str 不可变数据类型          # 不可变类型拷贝的是引用
str1 = '123'
str2 = copy.copy(str1)
print(f'str1:{id(str1)}')
print(f'str2:{id(str2)}')

# TODO 深拷贝    复制一份一模一样的数据
list1 = [1, 2, 3, ['a', 'b', [1, 2, 3]]]
list2 = copy.deepcopy(list1)
print(f'list1:{id(list1)}')
print(f'list2:{id(list2)}')
print(f'list1[3]:{id(list1[3])}')
print(f'list2[3]:{id(list2[3])}')
print(f'list1[3][2]:{id(list1[3][2])}')
print(f'list2[3][2]:{id(list2[3][2])}')
